package com.ucode.model.cgms.enums;


import com.ucode.tool.base.IntArrayValuable;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

import static cn.hutool.core.util.ArrayUtil.firstMatch;

/**
 * 陪玩订单售后状态的枚举
 */
@AllArgsConstructor
@Getter
public enum CgmsAfterSaleCompanionOrderStatusEnum implements IntArrayValuable {

    /**
     * 【申请售后】
     */
    APPLY(1,"申请中", "会员申请退款"),
    /**
     * 卖家通过售后；
     */
    SELLER_AGREE(2, "卖家通过", "商家同意退款"),
    /**
     * 卖家拒绝售后；商家拒绝【商家拒绝】
     */
    SELLER_DISAGREE(3,"卖家拒绝", "商家拒绝退款"),
    /**
     * 完成退款【退款成功】
     */
    COMPLETE(4, "完成", "完成退款"),
    /**
     * 【买家取消】
     */
    BUYER_CANCEL(5, "买家取消售后", "会员取消退款");

    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CgmsAfterSaleCompanionOrderStatusEnum::getStatus).toArray();

    /**
     * 状态
     */
    private final Integer status;
    /**
     * 状态名
     */
    private final String name;
    /**
     * 操作内容
     *
     * 目的：记录售后日志的内容
     */
    private final String content;

    @Override
    public int[] array() {
        return ARRAYS;
    }

    public static CgmsAfterSaleCompanionOrderStatusEnum valueOf(Integer status) {
        return firstMatch(value -> value.getStatus().equals(status), values());
    }

}
